package com.linkage.bookshop.service.inter;

import java.util.List;
import com.linkage.bookshop.model.*;

public interface BookService {
	// 列出书籍，根据不同参数传入：
	/**
	 * 按类显示查看： 传入类别id和每页显示数量以及页码 按关键字搜索结果查看： 传入搜索关键字字符串和每页显示数量
	 */
	// 根据类别查看
	public List<Book> listBooks(int typeId, int numPerPage, int pageNum,
			String orderBy);

	// 根据搜索关键字查看
	public List<Book> listBooks(String keyWord, int numPerPage, int pageNum,
			String orderBy);
	
	//根据类别查看，无分页,在售书籍
	public List<Book> listAllBooksOnsale(int typeId);
	
	//根据关键字查看，无分页，在售书籍
	public List<Book> listAllBooksOnsale(String keyWord);
	
	//根据类别查看，无分页，所有书籍
	public List<Book> listAllBooks(int typeId);
	
	//根据关键字查看，无分页，所有书籍
	public List<Book> listAllBooks(String keyWord);
	
	//列出所有书籍
	public List<Book> listAllBooks();

	// 查看书籍信息
	public Book loadBookDetail(int bookId);

	// 添加类别
	public boolean addType(String typeName);

	// ##查看类别
	public List<Booktype> listAllTypes();

	// 添加书籍
	public boolean addBook(Book book);

	// 修改书籍信息
	public boolean modifyBook(Book book);

	// 书籍上架
	public boolean pushBook(int bookId);

	// 书籍下架
	public boolean pullBook(int bookId);

	// 检查输入的typeName是否已用，若未使用返回true，已使用则返回false
	public boolean checkTypeName(String typeName);
	
	//更新书的库存量和销量
	public boolean modifyVolume(int bookId, int num, boolean flag);
}